/*
** object.h for object in /home/merche_o//rush/rush2
**
** Made by olivier mercher
** Login   <merche_o@epitech.net>
**
** Started on  Sat Jan 19 11:10:17 2013 olivier mercher
// Last update Sat Jan 19 21:28:43 2013 guillaume bissinger
*/

#ifndef	__OBJECT_HH__
#define __OBJECT_HH__

#include <iostream>
#include <string>

enum type
  {
    TOY,
    BOX,
    GIFTPAPER
  };


class	Object
{
public:
  type _type;
  bool _mIsTaken;
public:
  Object();
  Object(Object const &);
  virtual bool isOpen() = 0;
  virtual void	openMe() = 0;
  virtual void	closeMe() = 0;
  virtual ~Object();
  virtual Object*	wrapMeThat(Object *) = 0;
  Object&	operator=(Object const &);
  virtual bool isTaken() = 0;
  
};

#endif
